package com.mrd.gtimp.business.service;

import java.util.Map;

import com.mrd.gtimp.business.entity.FundAccount;
import com.mrd.gtimp.business.entity.FundFlow;

/**
 * 农业银行支付业务
 *
 * @author xiewl
 */

public interface PaymentABCBiz {

  /**
   * 处理支付结果
   */
  public boolean receiveABCPayResponse(String mSG);

  /**
   * 请求交易
   *
   * @param orderNo 订单号
   * @param orderAmount 订单金额
   * @param productName 产品名称
   */
  public Map<String, String> requestForPayment(String orderNo, String orderAmount,
      String productName, String paymentType);

  /**
   * 向银行系统轮询订单是否支付
   */
  public Boolean queryABCPayStatus(String pay_id);

  /**
   * 根据预付款编号询问银行支付结果
   * 
   * @param pay_id
   */
  public void askPayResultFromBank(String pay_id) throws Exception;

  /**
   * 改变账户余额，写现金流水
   * 
   * @param ff field compId and amount and FinancialType must be not null
   * @param fa can be null,return
   * @return
   */
  public Boolean changeFundAccBala(FundFlow ff, FundAccount fa) throws Exception;
}
